package clases;

import java.sql.ResultSet;
import java.util.ArrayList;

import javax.naming.spi.DirStateFactory.Result;
import javax.swing.JOptionPane;

public class Usuarios_class extends Conexion {

	private String usuario;
	private String contrasena;
	private String nombres;
	private String apellidos;
	private String rol;
	private Boolean activo;
	private String query;
	private ArrayList<String> parametros;
	
	public Usuarios_class(){}
	
	public Usuarios_class(String usuario)
	{
		this.usuario=usuario;
	}
	
	public Usuarios_class(String usuario, String contrasena, String nombres, String apellidos, String rol, Boolean activo)
	{
		this.usuario=usuario;
		this.contrasena=contrasena;
		this.nombres=nombres;
		this.apellidos=apellidos;
		this.rol=rol;
		this.activo=activo;
	}
	
	public void nuevo()
	{
		try
		{
			query = "SELECT * FROM usuarios WHERE codigousuario=?";
			parametros = new ArrayList<String>();
			parametros.add(usuario);
			ResultSet resultado = mostrar(query, parametros);
			if(!resultado.next())
			{
				query = "INSERT INTO usuarios VALUES (?,?,?,?,?, ?)";
				parametros = new ArrayList<String>();
				parametros.add(usuario);
				parametros.add(nombres);
				parametros.add(apellidos);
				parametros.add(contrasena);
				parametros.add(rol);
				parametros.add(String.valueOf(activo));
				sentenciaConnection(query, parametros);
			}
			else
			{
				JOptionPane.showMessageDialog(null, "Usuario ya existe..");
			}
			
		}catch(Exception ex)
		{
			JOptionPane.showMessageDialog(null, ex.toString());
		}
	}
	
	public void modificar()
	{
		query = "UPDATE usuarios SET nombres=?, apellidos=?, contrasena=?, codigorol=?, activo=? WHERE codigousuario=?";
		parametros = new ArrayList<String>();
		parametros.add(nombres);
		parametros.add(apellidos);
		parametros.add(contrasena);
		parametros.add(rol);
		parametros.add(String.valueOf(activo));
		parametros.add(usuario);
		sentenciaConnection(query, parametros);
	}
	
	public void eliminar()
	{
		query = "DELETE FROM usuarios WHERE codigousuario=?";
		parametros = new ArrayList<String>();
		parametros.add(usuario);
		sentenciaConnection(query, parametros);
	}
	
	public ResultSet mostrar()
	{
		if(usuario!=null && usuario!="")
		{
			query = "SELECT * FROM usuarios WHERE codigousuario='"+this.usuario+"'";
		}
		else
		{
			query = "SELECT * FROM usuarios";
		}
		return consultaConnection(query);
	}
	
	public ResultSet mostrar(String query)
	{
		return consultaConnection(query);
	}
	
	public ResultSet mostrar(String queryref, ArrayList<String> parametrosref)
	{
		return consultaConnection(queryref, parametrosref);
	}
	
	
	public ResultSet rolusuario()
	{
		query = "SELECT * FROM roles INNER JOIN usuarios ON usuarios.codigorol = roles.codigorol WHERE usuarios.codigousuario=?";
		parametros = new ArrayList<String>();
		parametros.add(usuario);
		return consultaConnection(query, parametros);
		
	}
	
	
}
